An embedded system, in contrast to a general purpose computing-based system, is a computing-based system that is designed for a specific purpose, and is typically constrained in its size, power requirements and/or features in comparison to general purpose computing-based systems.
An embedded system that comprises multiple processor cores that run separate programs that write to and read from shared memory typically comprise means to manage and allocate the shared memory to the different programs. For example, such embedded systems may comprise a memory management unit (MMU) to dynamically manage and allocate the shared memory to the different programs, or, they may be configured such that the separate programs may be run under a common operating system instance that dynamically manages and allocates the shared memory to the different programs.
The embodiments described below are provided by way of example only and are not limiting of implementations which solve any or all of the disadvantages of known methods and systems for managing shared memory in a multi-core embedded system.